#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Description: 入口文件

import argparse


class customParser(argparse.ArgumentParser):
    def format_help(self):
        # 获取原始的帮助信息
        help_message = super().format_help()
        # 找到"QDFS自动化测试"这一行的起始位置
        start_index = help_message.find("QDFS自动化测试")
        # 如果找到了，就返回从"QDFS自动化测试"开始的内容
        if start_index != -1:
            help_message = help_message[start_index:]
        return help_message


def get_parse_args():
    parser = customParser(
        description="QDFS自动化测试",
        formatter_class=argparse.RawTextHelpFormatter,
    )
    parser.add_argument(
        "-m",
        dest="mode",
        type=str,
        choices=["cow", "nocow"],
        default="nocow",
        help="【指定测试模式-default：nocow】eg：-m cow：cow模式；nocow：nocow模式",
    )
    parser.add_argument(
        "-s",
        dest="scene",
        type=str,
        choices=["basic", "high", "reliability", "stability", "failgroup"],
        default="basic",
        help="【指定测试场景-default：basic】eg：-s basic：基本功能测试；failgroup：failgroup测试；stability：稳定性测试；high：高可用测试；reliability：可靠性测试",
    )
    parser.add_argument(
        "-i",
        dest="ipaddr",
        type=str,
        default="10.10.140.14",
        help="【指定测试IP地址-default：10.10.140.14】eg：-i 10.10.140.14",
    )
    parser.add_argument(
        "-n",
        dest="number",
        type=int,
        default=1,
        help="【指定循环测试次数-default：1】eg：-n 1：全部测试一遍",
    )
    parser.add_argument(
        "-p",
        dest="point",
        type=str,
        default="/dgtest_nocow",
        help="【设置挂载节点-default：/dgtest】eg：-p /dgtest_nocow：指定挂载到/dgtest_nocow",
    )
    parser.add_argument(
        "-r",
        dest="replicas",
        type=int,
        default=2,
        help="【指定replicas数量-default：2】eg -r 2：2个副本数",
    )
    parser.add_argument(
        "-f",
        dest="failgroup",
        type=int,
        default=3,
        help="【指定failgroup数量-default：3】eg -f 3：3组failgroup",
    )
    parser.add_argument(
        "-d",
        dest="debug",
        help="【测试脚本，不运行】eg -d：开启日志打印不执行",
    )
    args = parser.parse_args()
    return args

